package cn.iocoder.yudao.module.system.controller.admin.scoreassignment.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 赋分规则配置创建 Request VO")
@Data
public class ScoreAssignmentRuleCreateReqVO {

    @Schema(description = "规则名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "浙江省赋分规则")
    @NotBlank(message = "规则名称不能为空")
    private String ruleName;

    @Schema(description = "适用科目", requiredMode = Schema.RequiredMode.REQUIRED, example = "物理")
    @NotBlank(message = "适用科目不能为空")
    private String subjectName;

    @Schema(description = "等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "A")
    @NotBlank(message = "等级不能为空")
    private String gradeLevel;

    @Schema(description = "最小百分比", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.00")
    @NotNull(message = "最小百分比不能为空")
    private BigDecimal minPercentage;

    @Schema(description = "最大百分比", requiredMode = Schema.RequiredMode.REQUIRED, example = "15.00")
    @NotNull(message = "最大百分比不能为空")
    private BigDecimal maxPercentage;

    @Schema(description = "赋分最小值", requiredMode = Schema.RequiredMode.REQUIRED, example = "91.00")
    @NotNull(message = "赋分最小值不能为空")
    private BigDecimal assignedScoreMin;

    @Schema(description = "赋分最大值", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
    @NotNull(message = "赋分最大值不能为空")
    private BigDecimal assignedScoreMax;

    @Schema(description = "规则描述", example = "A等级：前15%")
    private String description;

    @Schema(description = "状态", example = "1")
    private Integer status;

}